package com.zyk.leetcode;

/**
 * @author zhangsan
 * @date 2021/4/7 14:57
 */
public class M0104 {

    // https://leetcode-cn.com/problems/palindrome-permutation-lcci/
    // 判断给定字符串是否是其他回文字符串的排列
    // 所以回文串既是字符出现了偶数次, 只有一个字符出现了奇数次, 或者没有奇数次的字符
    public static boolean canPermutePalindrome(String s) {
        boolean[] help = new boolean[128];
        char[] str = s.toCharArray();
        // 一次 -> true  两次 -> false  三次 -> true   四次 -> false
        for (char c : str) {
            help[c] = !help[c];
        }
        int flag = 0;
        for (boolean b : help) {
            if(flag == 2) {
                return false;
            }
            if(b) {
                flag++;
            }
        }
        return true;
    }

    // for test
    public static void main(String[] args) {
        String str = "aab";
        System.out.println(canPermutePalindrome(str));
    }

}
